The arguments _s, _s_1, and _s_2 point to strings (arrays of characters
terminated by a null character). The functions _ssss_tttt_rrrr_cccc_aaaa_tttt, _ssss_tttt_rrrr_nnnn_cccc_aaaa_tttt, _ssss_tttt_rrrr_cccc_pppp_yyyy,
_ssss_tttt_rrrr_nnnn_cccc_pppp_yyyy, _ssss_tttt_rrrr_tttt_oooo_kkkk______rrrr, and _ssss_tttt_rrrr_tttt_oooo_kkkk, all alter _s_1. These functions do not
check for overflow of the array pointed to by _s_1, or for overlap between
_s_1 and _s_2. If overflow of _s_1 occurs, or copying takes place when _s_1 and
_s_2 overlap, the behavior is undefined.
_ssss_tttt_rrrr_cccc_aaaa_tttt appends a copy of string _s_2, including the terminating null
character, to the end of string _s_1. _ssss_tttt_rrrr_nnnn_cccc_aaaa_tttt appends at most _n
characters. Each returns a pointer to the null-terminated result. The
initial character of _s_2 overrides the null character at the end of _s_1.
_ssss_tttt_rrrr_cccc_mmmm_pppp compares its arguments and returns an integer less than, equal to,
or greater than 0, based upon whether _s_1 is lexicographically less than,
equal to, or greater than _s_2. _ssss_tttt_rrrr_nnnn_cccc_mmmm_pppp makes the same comparison but
looks at at most _n characters. Characters following a null character are
not compared. _ssss_tttt_rrrr_cccc_aaaa_ssss_eeee_cccc_mmmm_pppp and _ssss_tttt_rrrr_nnnn_cccc_aaaa_ssss_eeee_cccc_mmmm_pppp are case-insensitive versions
of _ssss_tttt_rrrr_cccc_mmmm_pppp and _ssss_tttt_rrrr_nnnn_cccc_mmmm_pppp, respectively. Case-insensitive comparison is
implemented by converting upper-case ASCII characters to lower-case
before comparison. Thus _ssss_tttt_rrrr_cccc_aaaa_ssss_eeee_cccc_mmmm_pppp and _ssss_tttt_rrrr_nnnn_cccc_aaaa_ssss_eeee_cccc_mmmm_pppp only give meaningful
results for the "C" locale (7 bit ASCII).
_ssss_tttt_rrrr_cccc_pppp_yyyy copies string _s_2 to _s_1 including the terminating null character,
stopping after the null character has been copied. _ssss_tttt_rrrr_nnnn_cccc_pppp_yyyy copies
exactly _n characters, truncating _s_2 or adding null characters to _s_1 if
necessary (ie. if the length of _n is greater than the length of _s_2 ).
The result will not be null-terminated if the length of _s_2 is _n or more.
Each function returns _s_1.
_ssss_tttt_rrrr_dddd_uuuu_pppp returns a pointer to a new string which is a duplicate of the
string pointed to by _s_1. The space for the new string is obtained using
_mmmm_aaaa_llll_llll_oooo_cccc(3C). If the new string can not be created, a NULL pointer is
returned.
_ssss_tttt_rrrr_llll_eeee_nnnn returns the number of characters in _s, not including the
terminating null character.
_ssss_tttt_rrrr_cccc_hhhh_rrrr (or _ssss_tttt_rrrr_rrrr_cccc_hhhh_rrrr) returns a pointer to the first (last) occurrence of _c
(converted to a _cccc_hhhh_aaaa_rrrr) in string _s, or a NULL pointer if _c does not occur
in the string. The null character terminating a string is considered to
be part of the string.
_iiii_nnnn_dddd_eeee_xxxx (rrrriiiinnnnddddeeeexxxx) are included as duplicates of _ssss_tttt_rrrr_cccc_hhhh_rrrr (ssssttttrrrrrrrrcccchhhhrrrr) for
compatibility (see Notes).
_ssss_tttt_rrrr_pppp_bbbb_rrrr_kkkk returns a pointer to the first occurrence in string _s_1 of any
character from string _s_2, or a NULL pointer if no character from _s_2
_ssss_tttt_rrrr_ssss_pppp_nnnn (or _ssss_tttt_rrrr_cccc_ssss_pppp_nnnn) returns the length of the initial segment of string
_s_1 which consists entirely of characters from (not from) string _s_2.
_ssss_tttt_rrrr_tttt_oooo_kkkk considers the string _s_1 to consist of a sequence of zero or more
text tokens separated by spans of one or more characters from the
separator string _s_2. The first call (with pointer _s_1 specified) returns
a pointer to the first character of the first token, and will have
written a null character into _s_1 immediately following the returned
token. The function keeps track of its position in the string between
separate calls, so that subsequent calls (which must be made with the
first argument a NULL pointer) will work through the string _s_1
immediately following that token. In this way subsequent calls will work
through the string _s_1 until no tokens remain. The separator string _s_2
may be different from call to call. When no token remains in _s_1, a NULL
pointer is returned. Note that a string consisting entirely of non-
separator characters is considered a single token. For example, if the
initial call to _ssss_tttt_rrrr_tttt_oooo_kkkk is made with _s_1 pointing to a string consisting
entirely of non-separator characters, then the return value from _ssss_tttt_rrrr_tttt_oooo_kkkk
will be the value of _s_1 passed to _ssss_tttt_rrrr_tttt_oooo_kkkk.
_ssss_tttt_rrrr_tttt_oooo_kkkk______rrrr is a reentrant version of _ssss_tttt_rrrr_tttt_oooo_kkkk. The current location in the
string is kept track of in _l_a_s_t_s. On the first call to _ssss_tttt_rrrr_tttt_oooo_kkkk______rrrr, _l_a_s_t_s
should be a pointer to a NULL pointer. It is kept updated on each
successive call to _ssss_tttt_rrrr_tttt_oooo_kkkk______rrrr to point into _s_1 directly after the null
character. _l_a_s_t_s must not be changed between calls to _ssss_tttt_rrrr_tttt_oooo_kkkk______rrrr. The
feature test macro ______SSSS_GGGG_IIII______RRRR_EEEE_EEEE_NNNN_TTTT_RRRR_AAAA_NNNN_TTTT______FFFF_UUUU_NNNN_CCCC_TTTT_IIII_OOOO_NNNN_SSSS should be defined to make
this function visible.
_ssss_tttt_rrrr_ssss_tttt_rrrr locates the first occurrence in string _s_1 of the sequence of
characters (excluding the terminating null character) in string _s_2.
_ssss_tttt_rrrr_ssss_tttt_rrrr returns a pointer to the located string, or a null pointer if the
string is not found. If _s_2 points to a string with zero length (i.e., the
All of these functions assume the default locale ``C.'' For some
locales, _ssss_tttt_rrrr_xxxx_ffff_rrrr_mmmm should be applied to the strings before they are passed
to the functions.
Declarations for _iiii_nnnn_dddd_eeee_xxxx and _rrrr_iiii_nnnn_dddd_eeee_xxxx are specifically omitted from
_<<<<_ssss_tttt_rrrr_iiii_nnnn_gggg_...._hhhh_>>>> due to possible naming conflicts. Instead, they are declared
in _<<<<_ssss_tttt_rrrr_iiii_nnnn_gggg_ssss_...._hhhh_>>>>.
The iiiinnnnddddeeeexxxx, rrrriiiinnnnddddeeeexxxx, ssssttttrrrrccccaaaasssseeeeccccmmmmpppp, ssssttttrrrrnnnnccccaaaasssseeeeccccmmmmpppp routines are from the 4.3BSD